技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
24
0
AI & Data
AI白話文運動系列之「A!給我那張Image!」
系列 第
24
篇
CNN經典論文導讀(五)--DenseNet
15th鐵人賽
理工哈士奇嗷嗚嗷嗚
2023-10-09 22:46:05
1236 瀏覽
分享至
前言
今天沒意外的話會是這個系列中最後一篇經典論文探討了,雖然我們前段時間花了一些篇幅討論Autoencoder架構,但其實這篇論文的概念更像是ResNet,所以如果忘記的人可以先回顧一下ResNet的內容。
先備知識
對捲積運算有基礎的認識(可以回顧:
https://ithelp.ithome.com.tw/articles/10323076
)
了解甚麼是捲積神經網路(Convolutional Neural Network)(可以回顧:
https://ithelp.ithome.com.tw/articles/10323077
)
知道ResNet架構長甚麼樣(可以回顧:
https://ithelp.ithome.com.tw/articles/10333499
;
https://ithelp.ithome.com.tw/articles/10333931
)
看完今天的內容你可能會知道......
Dense connection是甚麼架構
DenseNet與ResNet差在哪裡
DenseNet有甚麼優勢
一、更強更猛的ResNet?
論文
https://arxiv.org/pdf/1608.06993.pdf
我們在介紹ResNet時有提過,通過短路連接(Shortcut connection),可以讓更多的資訊往後傳遞,有助於利用最佳化方式進行反向傳遞,可以建立出更深層的模型。2017年被提出了DenseNet這篇論文也是類似的想法,不過他的連接方式比起ResNet來的更加暴力直接。為甚麼這麼說呢?我們試想一下,如果只有前後層之間使用短路連接的效果還不錯的話,那麼我能不能多連接幾層?這樣是不是就可以讓更多層的資訊往後傳遞,也可以促進資訊的融合?
是的沒錯!DenseNet就是使用這樣的結構(如下圖所示):
圖中的紅色、綠色、紫色、黃色與橘色代表的是不同捲積層輸出的特徵圖,可以看到,這些特徵圖都被直接往後拉,跟別的特徵圖結合,這就是DenseNet提出的「密集連接(Dense connection)」,如果只有前後層之間的連接的話,就是ResNet中的Residual Block架構,DenseNet連接了更多更密集的層(會連接除了自己以外前面所有的層),所以才會是
Dense
connection。
另一點和ResNet的不同之處在於融合特徵圖資訊的方式。在Residual Block中,我們是如何結合自己的特徵圖與拉過來的特徵圖呢?答案是直接加在一起,所以會要求Residual跟Shortcut的輸出結果需要圖片大小與通道數都要一致。可是DenseNet不是用加的,是直接把特徵「疊」在一起,所以只需要圖片大小相同即可,經過結合之後通道數量會增加,換句話說就是可以有更多的特徵資訊可以用。
這正是DenseNet的一大特點,如果我好不容易提取出來的特徵只使用一層的話,會不會太浪費了?在CNN架構中,每一層的捲積層都會提取出不同的特徵,傳統上這些特徵只會被當層下一層捲積層的輸入資料來處理,可是,從另外一個角度思考,如果今天要完成一個分類任務的話,我應該盡可能的考慮所有的特徵,讓模型自己去學誰比較重要,而不是在傳遞的過程當中逐步萃取資訊,這樣我可以有更多的資訊協助判斷。DenseNet這樣的結構就是讓每一層都可以接受到之前學到的所有特徵,這被稱為「Feature reuse」,也就是我們重新使用之前的特徵。
註記:這邊說的疊其實用專業的話來說是指concat這個運算(可以參考:
https://pytorch.org/docs/stable/generated/torch.cat.html
)
二、DesneNet架構
聊完了核心概念,接著讓我們來看看DenseNet的整體架構吧!
整體模型結構可以分成兩個部分:「Dense Block」與「Transition Layer」,前者正是我們剛剛花了一些時間討論的結構,後者的話目的是在「調整特徵圖大小」,在CNN中,我們會逐步將特徵圖的面積縮小,讓捲積核可以提取到不同尺度的特徵,可是,如果圖片大小不同的話,就沒辦法把不同層輸出的特徵圖「疊」在一起了,所以我們需要使用Transition Layer來處理這件事。簡單來說,在Dense Block中的每一個捲積層都會接受之前所有特徵圖的資訊,而這些資訊會由Dense Block中的最後一個捲積層負責整合並往下傳遞,而DesneNet Block彼此之間因為特徵圖大小不同,所以在往下傳遞之前須經由Transition Layer調整。
說了這麼多,如果還記得ResNet的人應該可以感覺到,DenseNet透過更密集更緊湊的方式,讓它在參數量與計算量更少的情況下,依然能有優異的表現,這也是DenseNet最突出的地方。
三、總結
今天我們介紹了2017年提出的DenseNet架構,算是替之前LeNet-5, AlexNet, VGG到ResNet這條路畫上一個句點,讓大家看一下如果根據ResNet的想法往下發展會變成甚麼樣子,當然,CNN還有其他許多的架構與變形,礙於時間因素沒能在這個系列中詳細討論,之後有機會可以陸陸續續慢慢更新上來。
留言
追蹤
檢舉
上一篇
CNN經典論文實戰(四)--Autoencoder
下一篇
CNN經典論文實戰(五)--DenseNet
系列文
AI白話文運動系列之「A!給我那張Image!」
共
30
篇
目錄
RSS系列文
訂閱系列文
2
人訂閱
26
AI研究趨勢討論(一)--模型壓縮與加速(Model Compression and Acceleration)前篇
27
AI研究趨勢討論(一)--模型壓縮與加速(Model Compression and Acceleration)後篇
28
AI研究趨勢討論(二)--遷移學習、領域自適應與領域泛化
29
AI研究趨勢討論(三)--強強聯手打造新世代里程碑(CNN與ViT結合)
30
AI研究趨勢討論(四)--AI圖像生成(以Diffusion Model為例)
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
10974
篇
完賽人數
102
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
17th鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
熱門問題
Esxi 8.0版本上的虛擬機器, 安裝的作業系統是Windows Server 2025, 確定輸入的密碼是正確的, 無法登入(顯示密碼錯誤)
HP iLo Advanced trial license
在線求大神,千奧軟體主機怎麼安裝
因為網路磁碟的關係造成系統自動重新開機
Docker Compose 建立 GitLab 容器,執行器 Runner 運行流水線問題
windows server無法使用gpedit.msc
Java證照題目(main() method)
iatf16949資訊稽核
iatf16949資訊稽核內容
*5* Complete List of™️ Disney Cruise® Service™️ Contact Numbers in the USA
熱門回答
Esxi 8.0版本上的虛擬機器, 安裝的作業系統是Windows Server 2025, 確定輸入的密碼是正確的, 無法登入(顯示密碼錯誤)
因為網路磁碟的關係造成系統自動重新開機
iatf16949資訊稽核
windows server無法使用gpedit.msc
熱門文章
第4天,數位憑證的產生 / 中崙張記藥膳排骨 排骨讚(台北松山)| 30天滷肉飯
第4天,Cloudflare Public DNS 與 WARP / 滷小小 美味的滷味 | 30天板橋湳雅夜市
[為你自己學 n8n] 第 4 天,節點大師之路:產生寶可夢、篩選、算戰力!
第5天,數位憑證的格式 PEM、DER / 小辣椒魷魚羹(台北萬華)| 30天滷肉飯
Day 17- 分離關注點:設定與主要邏輯分開
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}